Рекурсия. Когда функции вызывают сами себя — этот процесс называют рекурсией. Это напоминает цикл while, соотвественно функция не может вызывать себя бесконечно, поэтому должно быть условие выхода из рекурсии. Если это условие будет написано неверно или его не будет, то call stack будет переполнен и вылезет ошибка, поэтому внимательно проверяйте условия, когда работаете с рекурсией
Для корректной работы нам также нужно написать правило движение по рекурсии, например: у нас есть массив экранов, внутри которых есть свои элементы, которые надо анимировать с определенной задержкой, а также показывать нужный экран, в таком случае мы можем использовать рекурсию: создадим функцию и передадим туда массив, нулевому элементу добавим класс, пробежимся циклом по внутренним элементам первого экрана(чтобы анимировать их) и на последней итерации вызовем ту же функцию, с тем же массивом, но без первого элемента. Условием выхода будет нулевая длинна переданного массива, так мы поймём, что элементы закончились и перебирать больше нечего. Похожий функционал я реализовывал, когда делал эффект дыма
Нашёл отличный урок про рекурсию с подробным объяснением и примерами:
Рекурсия. Когда функции вызывают сами себя — этот процесс называют рекурсией. Это напоминает цикл while, соотвественно функция не может вызывать себя бесконечно, поэтому должно быть условие выхода из рекурсии. Если это условие будет написано неверно или его не будет, то call stack будет переполнен и вылезет ошибка, поэтому внимательно проверяйте условия, когда работаете с рекурсией
Для корректной работы нам также нужно написать правило движение по рекурсии, например: у нас есть массив экранов, внутри которых есть свои элементы, которые надо анимировать с определенной задержкой, а также показывать нужный экран, в таком случае мы можем использовать рекурсию: создадим функцию и передадим туда массив, нулевому элементу добавим класс, пробежимся циклом по внутренним элементам первого экрана(чтобы анимировать их) и на последней итерации вызовем ту же функцию, с тем же массивом, но без первого элемента. Условием выхода будет нулевая длинна переданного массива, так мы поймём, что элементы закончились и перебирать больше нечего. Похожий функционал я реализовывал, когда делал эффект дыма
Нашёл отличный урок про рекурсию с подробным объяснением и примерами:
Telegram auto-delete message, expiring invites, and more
elegram is updating its messaging app with options for auto-deleting messages, expiring invite links, and new unlimited groups, the company shared in a blog post. Much like Signal, Telegram received a burst of new users in the confusion over WhatsApp’s privacy policy and now the company is adopting features that were already part of its competitors’ apps, features which offer more security and privacy. Auto-deleting messages were already possible in Telegram’s encrypted Secret Chats, but this new update for iOS and Android adds the option to make messages disappear in any kind of chat. Auto-delete can be enabled inside of chats, and set to delete either 24 hours or seven days after messages are sent. Auto-delete won’t remove every message though; if a message was sent before the feature was turned on, it’ll stick around. Telegram’s competitors have had similar features: WhatsApp introduced a feature in 2020 and Signal has had disappearing messages since at least 2016.
Telegram Auto-Delete Messages in Any Chat
Some messages aren’t supposed to last forever. There are some Telegram groups and conversations where it’s best if messages are automatically deleted in a day or a week. Here’s how to auto-delete messages in any Telegram chat. You can enable the auto-delete feature on a per-chat basis. It works for both one-on-one conversations and group chats. Previously, you needed to use the Secret Chat feature to automatically delete messages after a set time. At the time of writing, you can choose to automatically delete messages after a day or a week. Telegram starts the timer once they are sent, not after they are read. This won’t affect the messages that were sent before enabling the feature.